<!doctype html>
<html>
<head>
<meta charset='UTF-8'><meta name='viewport' content='width=device-width initial-scale=1'>

<style type='text/css'>html {overflow-x: initial !important;}:root { --bg-color: #ffffff; --text-color: #333333; --select-text-bg-color: #B5D6FC; --select-text-font-color: auto; --monospace: "Lucida Console",Consolas,"Courier",monospace; --title-bar-height: 20px; }
.mac-os-11 { --title-bar-height: 28px; }
html { font-size: 14px; background-color: var(--bg-color); color: var(--text-color); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, h5 { white-space: pre-wrap; }
body { margin: 0px; padding: 0px; height: auto; inset: 0px; font-size: 1rem; line-height: 1.42857143; overflow-x: hidden; background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: inherit; background-position: inherit; background-repeat: inherit; }
iframe { margin: auto; }
a.url { word-break: break-all; }
a:active, a:hover { outline: 0px; }
.in-text-selection, ::selection { text-shadow: none; background: var(--select-text-bg-color); color: var(--select-text-font-color); }
#write { margin: 0px auto; height: auto; width: inherit; word-break: normal; word-wrap: break-word; position: relative; white-space: normal; overflow-x: visible; padding-top: 36px; }
#write.first-line-indent p { text-indent: 2em; }
#write.first-line-indent li p, #write.first-line-indent p * { text-indent: 0px; }
#write.first-line-indent li { margin-left: 2em; }
.for-image #write { padding-left: 8px; padding-right: 8px; }
body.typora-export { padding-left: 30px; padding-right: 30px; }
.typora-export .footnote-line, .typora-export li, .typora-export p { white-space: pre-wrap; }
.typora-export .task-list-item input { pointer-events: none; }
@media screen and (max-width: 500px) {
  body.typora-export { padding-left: 0px; padding-right: 0px; }
  #write { padding-left: 20px; padding-right: 20px; }
}
#write li > figure:last-child { margin-bottom: 0.5rem; }
#write ol, #write ul { position: relative; }
img { max-width: 100%; vertical-align: middle; image-orientation: from-image; }
button, input, select, textarea { color: inherit; font-family: inherit; font-size: inherit; font-style: inherit; font-variant-caps: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; }
input[type="checkbox"], input[type="radio"] { line-height: normal; padding: 0px; }
*, ::after, ::before { box-sizing: border-box; }
#write h1, #write h2, #write h3, #write h4, #write h5, #write h6, #write p, #write pre { width: inherit; }
#write h1, #write h2, #write h3, #write h4, #write h5, #write h6, #write p { position: relative; }
p { line-height: inherit; }
h1, h2, h3, h4, h5, h6 { break-after: avoid-page; break-inside: avoid; orphans: 4; }
p { orphans: 4; }
h1 { font-size: 2rem; }
h2 { font-size: 1.8rem; }
h3 { font-size: 1.6rem; }
h4 { font-size: 1.4rem; }
h5 { font-size: 1.2rem; }
h6 { font-size: 1rem; }
.md-math-block, .md-rawblock, h1, h2, h3, h4, h5, h6, p { margin-top: 1rem; margin-bottom: 1rem; }
.hidden { display: none; }
.md-blockmeta { color: rgb(204, 204, 204); font-weight: 700; font-style: italic; }
a { cursor: pointer; }
sup.md-footnote { padding: 2px 4px; background-color: rgba(238, 238, 238, 0.7); color: rgb(85, 85, 85); border-radius: 4px; cursor: pointer; }
sup.md-footnote a, sup.md-footnote a:hover { color: inherit; text-transform: inherit; text-decoration: inherit; }
#write input[type="checkbox"] { cursor: pointer; width: inherit; height: inherit; }
figure { overflow-x: auto; margin: 1.2em 0px; max-width: calc(100% + 16px); padding: 0px; }
figure > table { margin: 0px; }
thead, tr { break-inside: avoid; break-after: auto; }
thead { display: table-header-group; }
table { border-collapse: collapse; border-spacing: 0px; width: 100%; overflow: auto; break-inside: auto; text-align: left; }
table.md-table td { min-width: 32px; }
.CodeMirror-gutters { border-right-width: 0px; background-color: inherit; }
.CodeMirror-linenumber { -webkit-user-select: none; }
.CodeMirror { text-align: left; }
.CodeMirror-placeholder { opacity: 0.3; }
.CodeMirror pre { padding: 0px 4px; }
.CodeMirror-lines { padding: 0px; }
div.hr:focus { cursor: none; }
#write pre { white-space: pre-wrap; }
#write.fences-no-line-wrapping pre { white-space: pre; }
#write pre.ty-contain-cm { white-space: normal; }
.CodeMirror-gutters { margin-right: 4px; }
.md-fences { font-size: 0.9rem; display: block; break-inside: avoid; text-align: left; overflow: visible; white-space: pre; background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: inherit; position: relative !important; background-position: inherit; background-repeat: inherit; }
.md-fences-adv-panel { width: 100%; margin-top: 10px; text-align: center; padding-top: 0px; padding-bottom: 8px; overflow-x: auto; }
#write .md-fences.mock-cm { white-space: pre-wrap; }
.md-fences.md-fences-with-lineno { padding-left: 0px; }
#write.fences-no-line-wrapping .md-fences.mock-cm { white-space: pre; overflow-x: auto; }
.md-fences.mock-cm.md-fences-with-lineno { padding-left: 8px; }
.CodeMirror-line, twitterwidget { break-inside: avoid; }
svg { break-inside: avoid; }
.footnotes { opacity: 0.8; font-size: 0.9rem; margin-top: 1em; margin-bottom: 1em; }
.footnotes + .footnotes { margin-top: 0px; }
.md-reset { margin: 0px; padding: 0px; border: 0px; outline: 0px; vertical-align: top; text-decoration: none; text-shadow: none; float: none; position: static; width: auto; height: auto; white-space: nowrap; cursor: inherit; line-height: normal; font-weight: 400; text-align: left; box-sizing: content-box; direction: ltr; background-position: 0px 0px; }
li div { padding-top: 0px; }
blockquote { margin: 1rem 0px; }
li .mathjax-block, li p { margin: 0.5rem 0px; }
li blockquote { margin: 1rem 0px; }
li { margin: 0px; position: relative; }
blockquote > :last-child { margin-bottom: 0px; }
blockquote > :first-child, li > :first-child { margin-top: 0px; }
.footnotes-area { color: rgb(136, 136, 136); margin-top: 0.714rem; padding-bottom: 0.143rem; white-space: normal; }
#write .footnote-line { white-space: pre-wrap; }
@media print {
  body, html { border: 1px solid transparent; height: 99%; break-after: avoid; break-before: avoid; font-variant-ligatures: no-common-ligatures; }
  #write { margin-top: 0px; border-color: transparent !important; padding-top: 0px !important; padding-bottom: 0px !important; }
  .typora-export * { print-color-adjust: exact; }
  .typora-export #write { break-after: avoid; }
  .typora-export #write::after { height: 0px; }
  .is-mac table { break-inside: avoid; }
  #write > p:nth-child(1) { margin-top: 0px; }
  .typora-export-show-outline .typora-export-sidebar { display: none; }
  figure { overflow-x: visible; }
}
.footnote-line { margin-top: 0.714em; font-size: 0.7em; }
a img, img a { cursor: pointer; }
pre.md-meta-block { font-size: 0.8rem; min-height: 0.8rem; white-space: pre-wrap; background-color: rgb(204, 204, 204); display: block; overflow-x: hidden; }
p > .md-image:only-child:not(.md-img-error) img, p > img:only-child { display: block; margin: auto; }
#write.first-line-indent p > .md-image:only-child:not(.md-img-error) img { left: -2em; position: relative; }
p > .md-image:only-child { display: inline-block; width: 100%; }
#write .MathJax_Display { margin: 0.8em 0px 0px; }
.md-math-block { width: 100%; }
.md-math-block:not(:empty)::after { display: none; }
.MathJax_ref { fill: currentcolor; }
[contenteditable="true"]:active, [contenteditable="true"]:focus, [contenteditable="false"]:active, [contenteditable="false"]:focus { outline: 0px; box-shadow: none; }
.md-task-list-item { position: relative; list-style-type: none; }
.task-list-item.md-task-list-item { padding-left: 0px; }
.md-task-list-item > input { position: absolute; top: 0px; left: 0px; margin-left: -1.2em; margin-top: calc(1em - 10px); border: none; }
.math { font-size: 1rem; }
.md-toc { min-height: 3.58rem; position: relative; font-size: 0.9rem; border-radius: 10px; }
.md-toc-content { position: relative; margin-left: 0px; }
.md-toc-content::after, .md-toc::after { display: none; }
.md-toc-item { display: block; color: rgb(65, 131, 196); }
.md-toc-item a { text-decoration: none; }
.md-toc-inner:hover { text-decoration: underline; }
.md-toc-inner { display: inline-block; cursor: pointer; }
.md-toc-h1 .md-toc-inner { margin-left: 0px; font-weight: 700; }
.md-toc-h2 .md-toc-inner { margin-left: 2em; }
.md-toc-h3 .md-toc-inner { margin-left: 4em; }
.md-toc-h4 .md-toc-inner { margin-left: 6em; }
.md-toc-h5 .md-toc-inner { margin-left: 8em; }
.md-toc-h6 .md-toc-inner { margin-left: 10em; }
@media screen and (max-width: 48em) {
  .md-toc-h3 .md-toc-inner { margin-left: 3.5em; }
  .md-toc-h4 .md-toc-inner { margin-left: 5em; }
  .md-toc-h5 .md-toc-inner { margin-left: 6.5em; }
  .md-toc-h6 .md-toc-inner { margin-left: 8em; }
}
a.md-toc-inner { font-size: inherit; font-style: inherit; font-weight: inherit; line-height: inherit; }
.footnote-line a:not(.reversefootnote) { color: inherit; }
.reversefootnote { font-family: ui-monospace, sans-serif; }
.md-attr { display: none; }
.md-fn-count::after { content: "."; }
code, pre, samp, tt { font-family: var(--monospace); }
kbd { margin: 0px 0.1em; padding: 0.1em 0.6em; font-size: 0.8em; color: rgb(36, 39, 41); background-color: rgb(255, 255, 255); border: 1px solid rgb(173, 179, 185); border-radius: 3px; box-shadow: rgba(12, 13, 14, 0.2) 0px 1px 0px, rgb(255, 255, 255) 0px 0px 0px 2px inset; white-space: nowrap; vertical-align: middle; }
.md-comment { color: rgb(162, 127, 3); opacity: 0.6; font-family: var(--monospace); }
code { text-align: left; }
a.md-print-anchor { white-space: pre !important; border: none !important; display: inline-block !important; position: absolute !important; width: 1px !important; right: 0px !important; outline: 0px !important; text-shadow: initial !important; background-position: 0px 0px !important; }
.os-windows.monocolor-emoji .md-emoji { font-family: "Segoe UI Symbol", sans-serif; }
.md-diagram-panel > svg { max-width: 100%; }
[lang="flow"] svg, [lang="mermaid"] svg { max-width: 100%; height: auto; }
[lang="mermaid"] .node text { font-size: 1rem; }
table tr th { border-bottom-width: 0px; }
video { max-width: 100%; display: block; margin: 0px auto; }
iframe { max-width: 100%; width: 100%; border: none; }
.highlight td, .highlight tr { border: 0px; }
mark { background-color: rgb(255, 255, 0); color: rgb(0, 0, 0); }
.md-html-inline .md-plain, .md-html-inline strong, mark .md-inline-math, mark strong { color: inherit; }
.md-expand mark .md-meta { opacity: 0.3 !important; }
mark .md-meta { color: rgb(0, 0, 0); }
@media print {
  .typora-export h1, .typora-export h2, .typora-export h3, .typora-export h4, .typora-export h5, .typora-export h6 { break-inside: avoid; }
}
.md-diagram-panel .messageText { stroke: none !important; }
.md-diagram-panel .start-state { fill: var(--node-fill); }
.md-diagram-panel .edgeLabel rect { opacity: 1 !important; }
.md-fences.md-fences-math { font-size: 1em; }
.md-fences-advanced:not(.md-focus) { padding: 0px; white-space: nowrap; border: 0px; }
.md-fences-advanced:not(.md-focus) { background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: inherit; background-position: inherit; background-repeat: inherit; }
.typora-export-show-outline .typora-export-content { max-width: 1440px; margin: auto; display: flex; flex-direction: row; }
.typora-export-sidebar { width: 300px; font-size: 0.8rem; margin-top: 80px; margin-right: 18px; }
.typora-export-show-outline #write { --webkit-flex: 2; flex: 2 1 0%; }
.typora-export-sidebar .outline-content { position: fixed; top: 0px; max-height: 100%; overflow: hidden auto; padding-bottom: 30px; padding-top: 60px; width: 300px; }
@media screen and (max-width: 1024px) {
  .typora-export-sidebar, .typora-export-sidebar .outline-content { width: 240px; }
}
@media screen and (max-width: 800px) {
  .typora-export-sidebar { display: none; }
}
.outline-content li, .outline-content ul { margin-left: 0px; margin-right: 0px; padding-left: 0px; padding-right: 0px; list-style: none; overflow-wrap: anywhere; }
.outline-content ul { margin-top: 0px; margin-bottom: 0px; }
.outline-content strong { font-weight: 400; }
.outline-expander { width: 1rem; height: 1.428571429rem; position: relative; display: table-cell; vertical-align: middle; cursor: pointer; padding-left: 4px; }
.outline-expander::before { content: ""; position: relative; font-family: Ionicons; display: inline-block; font-size: 8px; vertical-align: middle; }
.outline-item { padding-top: 3px; padding-bottom: 3px; cursor: pointer; }
.outline-expander:hover::before { content: ""; }
.outline-h1 > .outline-item { padding-left: 0px; }
.outline-h2 > .outline-item { padding-left: 1em; }
.outline-h3 > .outline-item { padding-left: 2em; }
.outline-h4 > .outline-item { padding-left: 3em; }
.outline-h5 > .outline-item { padding-left: 4em; }
.outline-h6 > .outline-item { padding-left: 5em; }
.outline-label { cursor: pointer; display: table-cell; vertical-align: middle; text-decoration: none; color: inherit; }
.outline-label:hover { text-decoration: underline; }
.outline-item:hover { border-color: rgb(245, 245, 245); background-color: var(--item-hover-bg-color); }
.outline-item:hover { margin-left: -28px; margin-right: -28px; border-left-width: 28px; border-left-style: solid; border-left-color: transparent; border-right-width: 28px; border-right-style: solid; border-right-color: transparent; }
.outline-item-single .outline-expander::before, .outline-item-single .outline-expander:hover::before { display: none; }
.outline-item-open > .outline-item > .outline-expander::before { content: ""; }
.outline-children { display: none; }
.info-panel-tab-wrapper { display: none; }
.outline-item-open > .outline-children { display: block; }
.typora-export .outline-item { padding-top: 1px; padding-bottom: 1px; }
.typora-export .outline-item:hover { margin-right: -8px; border-right-width: 8px; border-right-style: solid; border-right-color: transparent; }
.typora-export .outline-expander::before { content: "+"; font-family: inherit; top: -1px; }
.typora-export .outline-expander:hover::before, .typora-export .outline-item-open > .outline-item > .outline-expander::before { content: "−"; }
.typora-export-collapse-outline .outline-children { display: none; }
.typora-export-collapse-outline .outline-item-open > .outline-children, .typora-export-no-collapse-outline .outline-children { display: block; }
.typora-export-no-collapse-outline .outline-expander::before { content: "" !important; }
.typora-export-show-outline .outline-item-active > .outline-item .outline-label { font-weight: 700; }
.md-inline-math-container mjx-container { zoom: 0.95; }
mjx-container { break-inside: avoid; }
.md-alert.md-alert-note { border-left-color: rgb(9, 105, 218); }
.md-alert.md-alert-important { border-left-color: rgb(130, 80, 223); }
.md-alert.md-alert-warning { border-left-color: rgb(154, 103, 0); }
.md-alert.md-alert-tip { border-left-color: rgb(31, 136, 61); }
.md-alert.md-alert-caution { border-left-color: rgb(207, 34, 46); }
.md-alert { padding: 0px 1em; margin-bottom: 16px; color: inherit; border-left-width: 0.25em; border-left-style: solid; border-left-color: rgb(0, 0, 0); }
.md-alert-text-note { color: rgb(9, 105, 218); }
.md-alert-text-important { color: rgb(130, 80, 223); }
.md-alert-text-warning { color: rgb(154, 103, 0); }
.md-alert-text-tip { color: rgb(31, 136, 61); }
.md-alert-text-caution { color: rgb(207, 34, 46); }
.md-alert-text { font-size: 0.9rem; font-weight: 700; }
.md-alert-text svg { fill: currentcolor; position: relative; top: 0.125em; margin-right: 1ch; overflow: visible; }
.md-alert-text-container::after { content: attr(data-text); text-transform: capitalize; pointer-events: none; margin-right: 1ch; }


.CodeMirror { height: auto; }
.CodeMirror.cm-s-inner { background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: inherit; background-position: inherit; background-repeat: inherit; }
.CodeMirror-scroll { overflow: auto hidden; z-index: 3; }
.CodeMirror-gutter-filler, .CodeMirror-scrollbar-filler { background-color: rgb(255, 255, 255); }
.CodeMirror-gutters { border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: inherit; white-space: nowrap; background-position: inherit; background-repeat: inherit; }
.CodeMirror-linenumber { padding: 0px 3px 0px 5px; text-align: right; color: rgb(153, 153, 153); }
.cm-s-inner .cm-keyword { color: rgb(119, 0, 136); }
.cm-s-inner .cm-atom, .cm-s-inner.cm-atom { color: rgb(34, 17, 153); }
.cm-s-inner .cm-number { color: rgb(17, 102, 68); }
.cm-s-inner .cm-def { color: rgb(0, 0, 255); }
.cm-s-inner .cm-variable { color: rgb(0, 0, 0); }
.cm-s-inner .cm-variable-2 { color: rgb(0, 85, 170); }
.cm-s-inner .cm-variable-3 { color: rgb(0, 136, 85); }
.cm-s-inner .cm-string { color: rgb(170, 17, 17); }
.cm-s-inner .cm-property { color: rgb(0, 0, 0); }
.cm-s-inner .cm-operator { color: rgb(152, 26, 26); }
.cm-s-inner .cm-comment, .cm-s-inner.cm-comment { color: rgb(170, 85, 0); }
.cm-s-inner .cm-string-2 { color: rgb(255, 85, 0); }
.cm-s-inner .cm-meta { color: rgb(85, 85, 85); }
.cm-s-inner .cm-qualifier { color: rgb(85, 85, 85); }
.cm-s-inner .cm-builtin { color: rgb(51, 0, 170); }
.cm-s-inner .cm-bracket { color: rgb(153, 153, 119); }
.cm-s-inner .cm-tag { color: rgb(17, 119, 0); }
.cm-s-inner .cm-attribute { color: rgb(0, 0, 204); }
.cm-s-inner .cm-header, .cm-s-inner.cm-header { color: rgb(0, 0, 255); }
.cm-s-inner .cm-quote, .cm-s-inner.cm-quote { color: rgb(0, 153, 0); }
.cm-s-inner .cm-hr, .cm-s-inner.cm-hr { color: rgb(153, 153, 153); }
.cm-s-inner .cm-link, .cm-s-inner.cm-link { color: rgb(0, 0, 204); }
.cm-negative { color: rgb(221, 68, 68); }
.cm-positive { color: rgb(34, 153, 34); }
.cm-header, .cm-strong { font-weight: 700; }
.cm-del { text-decoration: line-through; }
.cm-em { font-style: italic; }
.cm-link { text-decoration: underline; }
.cm-error { color: red; }
.cm-invalidchar { color: red; }
.cm-constant { color: rgb(38, 139, 210); }
.cm-defined { color: rgb(181, 137, 0); }
div.CodeMirror span.CodeMirror-matchingbracket { color: rgb(0, 255, 0); }
div.CodeMirror span.CodeMirror-nonmatchingbracket { color: rgb(255, 34, 34); }
.cm-s-inner .CodeMirror-activeline-background { background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: inherit; background-position: inherit; background-repeat: inherit; }
.CodeMirror { position: relative; overflow: hidden; }
.CodeMirror-scroll { height: 100%; outline: 0px; position: relative; box-sizing: content-box; background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: inherit; background-position: inherit; background-repeat: inherit; }
.CodeMirror-sizer { position: relative; }
.CodeMirror-gutter-filler, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-vscrollbar { position: absolute; z-index: 6; display: none; outline: 0px; }
.CodeMirror-vscrollbar { right: 0px; top: 0px; overflow: hidden; }
.CodeMirror-hscrollbar { bottom: 0px; left: 0px; overflow: auto hidden; }
.CodeMirror-scrollbar-filler { right: 0px; bottom: 0px; }
.CodeMirror-gutter-filler { left: 0px; bottom: 0px; }
.CodeMirror-gutters { position: absolute; left: 0px; top: 0px; padding-bottom: 10px; z-index: 3; overflow-y: hidden; }
.CodeMirror-gutter { white-space: normal; height: 100%; box-sizing: content-box; padding-bottom: 30px; margin-bottom: -32px; display: inline-block; }
.CodeMirror-gutter-wrapper { position: absolute; z-index: 4; border: none !important; background-position: 0px 0px !important; }
.CodeMirror-gutter-background { position: absolute; top: 0px; bottom: 0px; z-index: 4; }
.CodeMirror-gutter-elt { position: absolute; cursor: default; z-index: 4; }
.CodeMirror-lines { cursor: text; }
.CodeMirror pre { border-radius: 0px; border-width: 0px; font-family: inherit; font-size: inherit; margin: 0px; white-space: pre; word-wrap: normal; color: inherit; z-index: 2; position: relative; overflow: visible; background-position: 0px 0px; }
.CodeMirror-wrap pre { word-wrap: break-word; white-space: pre-wrap; word-break: normal; }
.CodeMirror-code pre { border-right-width: 30px; border-right-style: solid; border-right-color: transparent; width: fit-content; }
.CodeMirror-wrap .CodeMirror-code pre { border-right-style: none; width: auto; }
.CodeMirror-linebackground { position: absolute; inset: 0px; z-index: 0; }
.CodeMirror-linewidget { position: relative; z-index: 2; overflow: auto; }
.CodeMirror-wrap .CodeMirror-scroll { overflow-x: hidden; }
.CodeMirror-measure { position: absolute; width: 100%; height: 0px; overflow: hidden; visibility: hidden; }
.CodeMirror-measure pre { position: static; }
.CodeMirror div.CodeMirror-cursor { position: absolute; visibility: hidden; border-right-style: none; width: 0px; }
.CodeMirror div.CodeMirror-cursor { visibility: hidden; }
.CodeMirror-focused div.CodeMirror-cursor { visibility: inherit; }
.cm-searching { background-color: rgba(255, 255, 0, 0.4); }
span.cm-underlined { text-decoration: underline; }
span.cm-strikethrough { text-decoration: line-through; }
.cm-tw-syntaxerror { color: rgb(255, 255, 255); background-color: rgb(153, 0, 0); }
.cm-tw-deleted { text-decoration: line-through; }
.cm-tw-header5 { font-weight: 700; }
.cm-tw-listitem:first-child { padding-left: 10px; }
.cm-tw-box { border-style: solid; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-color: inherit; border-top-width: 0px !important; }
.cm-tw-underline { text-decoration: underline; }
@media print {
  .CodeMirror div.CodeMirror-cursor { visibility: hidden; }
}


:root {
  --mermaid-theme: night;
}

[lang='mermaid'] .label {
  color: #333;
}

/* CSS Document */

/** code highlight */

.cm-s-inner .cm-variable,
.cm-s-inner .cm-operator,
.cm-s-inner .cm-property {
    color: #b8bfc6;
}

.cm-s-inner .cm-keyword {
    color: #C88FD0;
}

.cm-s-inner .cm-tag {
    color: #7DF46A;
}

.cm-s-inner .cm-attribute {
    color: #7575E4;
}

.CodeMirror div.CodeMirror-cursor {
    border-left: 1px solid #b8bfc6;
    z-index: 3;
}

.cm-s-inner .cm-string {
    color: #D26B6B;
}

.cm-s-inner .cm-comment,
.cm-s-inner.cm-comment {
    color: #DA924A;
}

.cm-s-inner .cm-header,
.cm-s-inner .cm-def,
.cm-s-inner.cm-header,
.cm-s-inner.cm-def {
    color: #8d8df0;
}

.cm-s-inner .cm-quote,
.cm-s-inner.cm-quote {
    color: #57ac57;
}

.cm-s-inner .cm-hr {
    color: #d8d5d5;
}

.cm-s-inner .cm-link {
    color: #d3d3ef;
}

.cm-s-inner .cm-negative {
    color: #d95050;
}

.cm-s-inner .cm-positive {
    color: #50e650;
}

.cm-s-inner .cm-string-2 {
    color: #f50;
}

.cm-s-inner .cm-meta,
.cm-s-inner .cm-qualifier {
    color: #b7b3b3;
}

.cm-s-inner .cm-builtin {
    color: #f3b3f8;
}

.cm-s-inner .cm-bracket {
    color: #997;
}

.cm-s-inner .cm-atom,
.cm-s-inner.cm-atom {
    color: #84B6CB;
}

.cm-s-inner .cm-number {
    color: #64AB8F;
}

.cm-s-inner .cm-variable {
    color: #b8bfc6;
}

.cm-s-inner .cm-variable-2 {
    color: #9FBAD5;
}

.cm-s-inner .cm-variable-3 {
    color: #1cc685;
}

.CodeMirror-selectedtext,
.CodeMirror-selected {
    background: #4a89dc;
    color: #fff !important;
    text-shadow: none;
}

.CodeMirror-gutters {
    border-right: none;
}

/* CSS Document */

/** markdown source **/
.cm-s-typora-default .cm-header, 
.cm-s-typora-default .cm-property
{
    color: #cebcca;
}

.CodeMirror.cm-s-typora-default div.CodeMirror-cursor{
    border-left: 3px solid #b8bfc6;
}

.cm-s-typora-default .cm-comment {
    color: #9FB1FF;
}

.cm-s-typora-default .cm-string {
    color: #A7A7D9
}

.cm-s-typora-default .cm-atom, .cm-s-typora-default .cm-number {
    color: #848695;
    font-style: italic;
}

.cm-s-typora-default .cm-link {
    color: #95B94B;
}

.cm-s-typora-default .CodeMirror-activeline-background {
    background: rgba(51, 51, 51, 0.72);
}

.cm-s-typora-default .cm-comment, .cm-s-typora-default .cm-code {
	color: #8aa1e1;
}@import "";
@import "";
@import "";

:root {
    --bg-color:  #363B40;
    --side-bar-bg-color: #2E3033;
    --text-color: #b8bfc6;

    --select-text-bg-color:#4a89dc;

    --item-hover-bg-color: #0a0d16;
    --control-text-color: #b7b7b7;
    --control-text-hover-color: #eee;
    --window-border: 1px solid #555;

    --active-file-bg-color: rgb(34, 34, 34);
    --active-file-border-color: #8d8df0;

    --primary-color: #a3d5fe;

    --active-file-text-color: white;
    --item-hover-bg-color: #70717d;
    --item-hover-text-color: white;
    --primary-color: #6dc1e7;

    --rawblock-edit-panel-bd: #333;

    --search-select-bg-color: #428bca;
}

html {
    font-size: 16px;
    -webkit-font-smoothing: antialiased;
}

html,
body {
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
    background: #363B40;
    background: var(--bg-color);
    fill: currentColor;
    line-height: 1.625rem;
}

#write {
    max-width: 914px;
}


@media only screen and (min-width: 1400px) {
	#write {
		max-width: 1024px;
	}
}

@media only screen and (min-width: 1800px) {
	#write {
		max-width: 1200px;
	}
}

html,
body,
button,
input,
select,
textarea,
div.code-tooltip-content {
    color: #b8bfc6;
    border-color: transparent;
}

div.code-tooltip,
.md-hover-tip .md-arrow:after {
    background: #333;
}

.native-window #md-notification {
    border: 1px solid #70717d;
}

.popover.bottom > .arrow:after {
    border-bottom-color: #333;
}

html,
body,
button,
input,
select,
textarea {
    font-family: "Helvetica Neue", Helvetica, Arial, 'Segoe UI Emoji', sans-serif;
}

hr {
    height: 2px;
    border: 0;
    margin: 24px 0 !important;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: "Lucida Grande", "Corbel", sans-serif;
    font-weight: normal;
    clear: both;
    -ms-word-wrap: break-word;
    word-wrap: break-word;
    margin: 0;
    padding: 0;
    color: #DEDEDE
}

h1 {
    font-size: 2.5rem;
    /* 36px */
    line-height: 2.75rem;
    /* 40px */
    margin-bottom: 1.5rem;
    /* 24px */
    letter-spacing: -1.5px;
}

h2 {
    font-size: 1.63rem;
    /* 24px */
    line-height: 1.875rem;
    /* 30px */
    margin-bottom: 1.5rem;
    /* 24px */
    letter-spacing: -1px;
    font-weight: bold;
}

h3 {
    font-size: 1.17rem;
    /* 18px */
    line-height: 1.5rem;
    /* 24px */
    margin-bottom: 1.5rem;
    /* 24px */
    letter-spacing: -1px;
    font-weight: bold;
}

h4 {
    font-size: 1.12rem;
    /* 16px */
    line-height: 1.375rem;
    /* 22px */
    margin-bottom: 1.5rem;
    /* 24px */
    color: white;
}

h5 {
    font-size: 0.97rem;
    /* 16px */
    line-height: 1.25rem;
    /* 22px */
    margin-bottom: 1.5rem;
    /* 24px */
    font-weight: bold;
}

h6 {
    font-size: 0.93rem;
    /* 16px */
    line-height: 1rem;
    /* 16px */
    margin-bottom: 0.75rem;
    color: white;
}

@media (min-width: 980px) {
    h3.md-focus:before,
    h4.md-focus:before,
    h5.md-focus:before,
    h6.md-focus:before {
        color: #ddd;
        border: 1px solid #ddd;
        border-radius: 3px;
        position: absolute;
        left: -1.642857143rem;
        top: .357142857rem;
        float: left;
        font-size: 9px;
        padding-left: 2px;
        padding-right: 2px;
        vertical-align: bottom;
        font-weight: normal;
        line-height: normal;
    }

    h3.md-focus:before {
        content: 'h3';
    }

    h4.md-focus:before {
        content: 'h4';
    }

    h5.md-focus:before {
        content: 'h5';
        top: 0px;
    }

    h6.md-focus:before {
        content: 'h6';
        top: 0px;
    }
}

a {
    text-decoration: none;
    outline: 0;
}

a:hover {
    outline: 0;
}

a:focus {
    outline: thin dotted;
}

sup.md-footnote {
    background-color: #555;
    color: #ddd;
}

p {
    -ms-word-wrap: break-word;
    word-wrap: break-word;
}

p,
ul,
dd,
ol,
hr,
address,
pre,
table,
iframe,
.wp-caption,
.wp-audio-shortcode,
.wp-video-shortcode {
    margin-top: 0;
    margin-bottom: 1.5rem;
    /* 24px */
}

audio:not([controls]) {
    display: none;
}

[hidden] {
    display: none;
}

::-moz-selection {
    background: #4a89dc;
    color: #fff;
    text-shadow: none;
}

*.in-text-selection,
::selection {
    background: #4a89dc;
    color: #fff;
    text-shadow: none;
}

ul,
ol {
    padding: 0 0 0 1.875rem;
    /* 30px */
}

ul {
    list-style: square;
}

ol {
    list-style: decimal;
}

ul ul,
ol ol,
ul ol,
ol ul {
    margin: 0;
}

b,
th,
dt,
strong {
    font-weight: bold;
}

i,
em,
dfn,
cite {
    font-style: italic;
}

blockquote {
    padding-left: 1.875rem;
    margin: 0 0 1.875rem 1.875rem;
    border-left: solid 2px #474d54;
    padding-left: 30px;
    margin-top: 35px;
}

pre,
code,
kbd,
tt,
var {
    font-size: 0.875em;
    font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
}

code,
tt,
var {
    background: rgba(0, 0, 0, 0.05);
}

kbd {
    padding: 2px 4px;
    font-size: 90%;
    color: #fff;
    background-color: #333;
    border-radius: 3px;
    box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
}

pre.md-fences {
    padding: 10px 10px 10px 30px;
    margin-bottom: 20px;
    background: #333;
}

.CodeMirror-gutters {
    background: #333;
    border-right: 1px solid transparent;
}

.enable-diagrams pre.md-fences[lang="sequence"] .code-tooltip,
.enable-diagrams pre.md-fences[lang="flow"] .code-tooltip,
.enable-diagrams pre.md-fences[lang="mermaid"] .code-tooltip {
    bottom: -2.2em;
    right: 4px;
}

code,
kbd,
tt,
var {
    padding: 2px 5px;
}

table {
    max-width: 100%;
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
}

th,
td {
    padding: 5px 10px;
    vertical-align: top;
}

a {
    -webkit-transition: all .2s ease-in-out;
    transition: all .2s ease-in-out;
}

hr {
    background: #474d54;
    /* variable */
}

h1 {
    margin-top: 2em;
}

a {
    color: #e0e0e0;
    text-decoration: underline;
}

a:hover {
    color: #fff;
}

.md-inline-math script {
    color: #81b1db;
}

b,
th,
dt,
strong {
    color: #DEDEDE;
    /* variable */
}

mark {
    background: #D3D40E;
}

blockquote {
    color: #9DA2A6;
}

table a {
    color: #DEDEDE;
    /* variable */
}

th,
td {
    border: solid 1px #474d54;
    /* variable */
}

.task-list {
    padding-left: 0;
}

.md-task-list-item {
    padding-left: 1.25rem;
}

.md-task-list-item > input {
    top: auto;
}

.md-task-list-item > input:before {
    content: "";
    display: inline-block;
    width: 0.875rem;
    height: 0.875rem;
    vertical-align: middle;
    text-align: center;
    border: 1px solid #b8bfc6;
    background-color: #363B40;
    margin-top: -0.4rem;
}

.md-task-list-item > input:checked:before,
.md-task-list-item > input[checked]:before {
    content: '\221A';
    /*◘*/
    font-size: 0.625rem;
    line-height: 0.625rem;
    color: #DEDEDE;
}

/** quick open **/
.auto-suggest-container {
    border: 0px;
    background-color: #525C65;
}

#typora-quick-open {
    background-color: #525C65;
}

#typora-quick-open input{
    background-color: #525C65;
    border: 0;
    border-bottom: 1px solid grey;
}

.typora-quick-open-item {
    background-color: inherit;
    color: inherit;
}

.typora-quick-open-item.active,
.typora-quick-open-item:hover {
    background-color: #4D8BDB;
    color: white;
}

.typora-quick-open-item:hover {
    background-color: rgba(77, 139, 219, 0.8);
}

.typora-search-spinner > div {
  background-color: #fff;
}

#write pre.md-meta-block {
    border-bottom: 1px dashed #ccc;
    background: transparent;
    padding-bottom: 0.6em;
    line-height: 1.6em;
}

.btn,
.btn .btn-default {
    background: transparent;
    color: #b8bfc6;
}

.ty-table-edit {
    border-top: 1px solid gray;
    background-color: #363B40;
}

.popover-title {
    background: transparent;
}

.md-image>.md-meta {
    color: #BBBBBB;
    background: transparent;
}

.md-expand.md-image>.md-meta {
    color: #DDD;
}

#write>h3:before,
#write>h4:before,
#write>h5:before,
#write>h6:before {
    border: none;
    border-radius: 0px;
    color: #888;
    text-decoration: underline;
    left: -1.4rem;
    top: 0.2rem;
}

#write>h3.md-focus:before {
    top: 2px;
}

#write>h4.md-focus:before {
    top: 2px;
}

.md-toc-item {
    color: #A8C2DC;
}

#write div.md-toc-tooltip {
    background-color: #363B40;
}

.dropdown-menu .btn:hover,
.dropdown-menu .btn:focus,
.md-toc .btn:hover,
.md-toc .btn:focus {
    color: white;
    background: black;
}

#toc-dropmenu {
    background: rgba(50, 54, 59, 0.93);
    border: 1px solid rgba(253, 253, 253, 0.15);
}

#toc-dropmenu .divider {
    background-color: #9b9b9b;
}

.outline-expander:before {
    top: 2px;
}

#typora-sidebar {
    box-shadow: none;
    border-right: 1px dashed;
    border-right: none;
}

.sidebar-tabs {
    border-bottom:0;
}

#typora-sidebar:hover .outline-title-wrapper {
    border-left: 1px dashed;
}

.outline-title-wrapper .btn {
    color: inherit;
}

.outline-item:hover {
    border-color: #363B40;
    background-color: #363B40;
    color: white;
}

h1.md-focus .md-attr,
h2.md-focus .md-attr,
h3.md-focus .md-attr,
h4.md-focus .md-attr,
h5.md-focus .md-attr,
h6.md-focus .md-attr,
.md-header-span .md-attr {
    color: #8C8E92;
    display: inline;
}

.md-comment {
    color: #5a95e3;
    opacity: 0.8;
}

.md-inline-math svg {
    color: #b8bfc6;
}

#math-inline-preview .md-arrow:after {
    background: black;
}

.modal-content {
    background: var(--bg-color);
    border: 0;
}

.modal-title {
    font-size: 1.5em;
}

.modal-content input {
    background-color: rgba(26, 21, 21, 0.51);
    color: white;
}

.modal-content .input-group-addon {
    color: white;
}

.modal-backdrop {
    background-color: rgba(174, 174, 174, 0.7);
}

.modal-content .btn-primary {
    border-color: var(--primary-color);
}

.md-table-resize-popover {
    background-color: #333;
}

.form-inline .input-group .input-group-addon {
    color: white;
}

#md-searchpanel {
    border-bottom: 1px dashed grey;
}

/** UI for electron */

.context-menu,
#spell-check-panel,
#footer-word-count-info {
    background-color: #42464A;
}

.context-menu.dropdown-menu .divider,
.dropdown-menu .divider {
    background-color: #777777;
    opacity: 1;
}

footer {
    color: inherit;
}

@media (max-width: 1000px) {
    footer {
        border-top: none;
    }
    footer:hover {
        color: inherit;
    }
}

#file-info-file-path .file-info-field-value:hover {
    background-color: #555;
    color: #dedede;
}

.megamenu-content,
.megamenu-opened header {
    background: var(--bg-color);
}

.megamenu-menu-panel h2,
.megamenu-menu-panel h1,
.long-btn {
    color: inherit;
}

.megamenu-menu-panel input[type='text'] {
    background: inherit;
    border: 0;
    border-bottom: 1px solid;
}

#recent-file-panel-action-btn {
    background: inherit;
    border: 1px grey solid;
}

.megamenu-menu-panel .dropdown-menu > li > a {
    color: inherit;
    background-color: #2F353A;
    text-decoration: none;
}

.megamenu-menu-panel table td:nth-child(1) {
    color: inherit;
    font-weight: bold;
}

.megamenu-menu-panel tbody tr:hover td:nth-child(1) {
    color: white;
}

.modal-footer .btn-default, 
.modal-footer .btn-primary,
.modal-footer .btn-default:not(:hover) {
    border: 1px solid;
    border-color: transparent;
}

.btn-primary {
    color: white;
}

.btn-default:hover, .btn-default:focus, .btn-default.focus, .btn-default:active, .btn-default.active, .open > .dropdown-toggle.btn-default {
    color: white;
    border: 1px solid #ddd;
    background-color: inherit;
}

.modal-header {
    border-bottom: 0;
}

.modal-footer {
    border-top: 0;
}

#recent-file-panel tbody tr:nth-child(2n-1) {
    background-color: transparent !important;
}

.megamenu-menu-panel tbody tr:hover td:nth-child(2) {
    color: inherit;
}

.megamenu-menu-panel .btn {
    border: 1px solid #eee;
    background: transparent;
}

.mouse-hover .toolbar-icon.btn:hover,
#w-full.mouse-hover,
#w-pin.mouse-hover {
    background-color: inherit;
}

.typora-node::-webkit-scrollbar {
    width: 5px;
}

.typora-node::-webkit-scrollbar-thumb:vertical {
    background: rgba(250, 250, 250, 0.3);
}

.typora-node::-webkit-scrollbar-thumb:vertical:active {
    background: rgba(250, 250, 250, 0.5);
}

#w-unpin {
    background-color: #4182c4;
}

#top-titlebar, #top-titlebar * {
    color: var(--item-hover-text-color);
}

.typora-sourceview-on #toggle-sourceview-btn,
#footer-word-count:hover,
.ty-show-word-count #footer-word-count {
    background: #333333;
}

#toggle-sourceview-btn:hover {
    color: #eee;
    background: #333333;
}

/** focus mode */
.on-focus-mode .md-end-block:not(.md-focus):not(.md-focus-container) * {
    color: #686868 !important;
}

.on-focus-mode .md-end-block:not(.md-focus) img,
.on-focus-mode .md-task-list-item:not(.md-focus-container)>input {
    opacity: #686868 !important;
}

.on-focus-mode li[cid]:not(.md-focus-container){
    color: #686868;
}

.on-focus-mode .md-fences.md-focus .CodeMirror-code>*:not(.CodeMirror-activeline) *,
.on-focus-mode .CodeMirror.cm-s-inner:not(.CodeMirror-focused) * {
    color: #686868 !important;
}

.on-focus-mode .md-focus,
.on-focus-mode .md-focus-container {
    color: #fff;
}

.on-focus-mode #typora-source .CodeMirror-code>*:not(.CodeMirror-activeline) * {
    color: #686868 !important;
}


/*diagrams*/
#write .md-focus .md-diagram-panel {
    border: 1px solid #ddd;
    margin-left: -1px;
    width: calc(100% + 2px);
}

/*diagrams*/
#write .md-focus.md-fences-with-lineno .md-diagram-panel {
    margin-left: auto;
}

.md-diagram-panel-error {
    color: #f1908e;
}

.active-tab-files #info-panel-tab-file,
.active-tab-files #info-panel-tab-file:hover,
.active-tab-outline #info-panel-tab-outline,
.active-tab-outline #info-panel-tab-outline:hover {
    color: #eee;
}

.sidebar-footer-item:hover,
.footer-item:hover {
    background: inherit;
    color: white;
}

.ty-side-sort-btn.active,
.ty-side-sort-btn:hover,
.selected-folder-menu-item a:after {
    color: white;
}

#sidebar-files-menu {
    border:solid 1px;
    box-shadow: 4px 4px 20px rgba(0, 0, 0, 0.79);
    background-color: var(--bg-color);
}

.file-list-item {
    border-bottom:none;
}

.file-list-item-summary {
    opacity: 1;
}

.file-list-item.active:first-child {
    border-top: none;
}

.file-node-background {
    height: 32px;
}

.file-library-node.active>.file-node-content,
.file-list-item.active {
    color: white;
    color: var(--active-file-text-color);
}

.file-library-node.active>.file-node-background{
    background-color: rgb(34, 34, 34);
    background-color: var(--active-file-bg-color);
}
.file-list-item.active {
    background-color: rgb(34, 34, 34);
    background-color: var(--active-file-bg-color);
}

#ty-tooltip {
    background-color: black;
    color: #eee;
}

.md-task-list-item>input {
    margin-left: -1.3em;
    margin-top: 0.3rem;
    -webkit-appearance: none;
}

.md-mathjax-midline {
    background-color: #57616b;
    border-bottom: none;
}

footer.ty-footer {
    border-color: #656565;
}

.ty-preferences .btn-default {
    background: transparent;
}
.ty-preferences .btn-default:hover {
    background: #57616b;
}

.ty-preferences select {
    border: 1px solid #989698;
    height: 21px;
}

.ty-preferences .nav-group-item.active,
.export-item.active,
.export-items-list-control,
.export-detail {
    background: var(--item-hover-bg-color);
}

.ty-preferences input[type="search"] {
    border-color: #333;
    background: #333;
    line-height: 22px;
    border-radius: 6px;
    color: white;
}

.ty-preferences input[type="search"]:focus {
    box-shadow: none;
}

[data-is-directory="true"] .file-node-content {
    margin-bottom: 0;
}

.file-node-title {
    line-height: 22px;
}

.html-for-mac .file-node-open-state, .html-for-mac .file-node-icon {
    line-height: 26px;
}

::-webkit-scrollbar-thumb {
    background: rgba(230, 230, 230, 0.30);
}

::-webkit-scrollbar-thumb:active {
    background: rgba(230, 230, 230, 0.50);
}

#typora-sidebar:hover div.sidebar-content-content::-webkit-scrollbar-thumb:horizontal {
    background: rgba(230, 230, 230, 0.30);
}

.nav-group-item:active {
    background-color: #474d54 !important;
}

.md-search-hit {
    background: rgba(199, 140, 60, 0.81);
    color: #eee;
}

.md-search-hit * {
    color: #eee;
}

#md-searchpanel input {
    color: white;
}

.modal-backdrop.in {
    opacity: 1;
    backdrop-filter: blur(1px);
}

.clear-btn-icon {
    top: 8px;
}

/* try fix https://github.com/typora/typora-issues/issues/5253 */
.file-node-expanded>.file-node-children {
    display: grid;
  }

.md-alert-text-note {
    color: rgb(47, 129, 247);
}
.md-alert-text-important {
    color: rgb(163, 113, 247);
}
.md-alert-text-warning {
    color:  rgb(210, 153, 34);
}

 @media print { @page {margin: 0 0 0 0;} body.typora-export {padding-left: 0; padding-right: 0;} #write {padding:0;}}
</style><title></title>
</head>
<body class='typora-export'><div class='typora-export-content'>
<div id='write'  class=''><h2 id='29-appendix-h-gnu-free-documentation-license-29-附录-hgnu-自由文档许可证'><span>29. Appendix H: GNU Free Documentation License 29. 附录 H：GNU 自由文档许可证</span></h2><p><span>Version 1.3, 3 November 2008</span>
<span>版本 1.3， 2008 年 11 月 3 日</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang=""><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang=""><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 11px; left: 4px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;  &lt;http://fsf.org/&gt;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">Everyone is permitted to copy and distribute verbatim copies</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">of this license document, but changing it is not allowed.</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom-width: 0px; border-bottom-style: solid; border-bottom-color: transparent; top: 130px;"></div><div class="CodeMirror-gutters" style="display: none; height: 130px;"></div></div></div></pre><ol start='0' ><li><p><span>PREAMBLE 0. 序言</span></p></li></ol><p><span>The purpose of this License is to make a manual, textbook, or other functional and useful document &quot;free&quot; in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.</span>
<span>本许可证的目的是使手册、教科书或其他实用且有用的文档在自由意义上“自由”：确保每个人都有有效的自由来复制和重新分发它，无论是否对其进行修改，无论是商业的还是非商业的。其次，本许可证为作者和出版商保留了一种获得其作品荣誉的方式，同时不被视为对他人所做的修改负责。</span></p><p><span>This License is a kind of &quot;copyleft&quot;, which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.</span>
<span>该许可证是一种“copyleft”，这意味着文档的衍生作品本身必须在相同意义上是自由的。它补充了 GNU 通用公共许可证，后者是为自由软件设计的 copyleft 许可证。</span></p><p><span>We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.</span>
<span>我们设计这个许可证是为了将它用于自由软件的手册，因为自由软件需要自由文档：一个自由程序应该附带提供与软件相同的自由的手册。但本许可证不仅限于软件手册;它可以用于任何文本作品，无论主题如何，也无论它是否作为印刷书籍出版。我们主要推荐本许可证用于以指导或参考为目的的作品。</span></p><ol><li><p><span>APPLICABILITY AND DEFINITIONS</span></p></li><li><p><span>适用性和定义</span></p></li></ol><p><span>This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The &quot;Document&quot;, below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as &quot;you&quot;. You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law.</span>
<span>本许可证适用于任何媒介中的任何手册或其他作品，其中包含版权所有者放置的声明，说明可以根据本许可证的条款进行分发。此类声明授予全球范围内的免版税许可，期限不限，以在此所述条件下使用该作品。下面的“文件”是指任何此类手册或作品。任何公众成员都是被许可人，并被称呼为“您”。如果您以版权法要求许可的方式复制、修改或分发作品，则您接受许可。</span></p><p><span>A &quot;Modified Version&quot; of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language.</span>
<span>文档的“修改版本”是指包含文档或其部分的任何作品，无论是逐字复制的，还是经过修改和/或翻译成另一种语言的。</span></p><p><span>A &quot;Secondary Section&quot; is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document’s overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them.</span>
<span>“次要部分”是文件的命名附录或前言部分，专门处理文件的出版商或作者与文件的整体主题（或相关事项）的关系，不包含任何可能直接属于该整体主题的内容。（因此，如果本文件部分是数学教科书，则中学部分不得解释任何数学。这种关系可以是与主题或相关事项的历史联系，也可以是与主题有关的法律、商业、哲学、伦理或政治立场的问题。</span></p><p><span>The &quot;Invariant Sections&quot; are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none.</span>
<span>“固定部分”是某些次要部分，其标题在通知中被指定为固定部分的标题，表明文档是根据本许可证发布的。如果某个部分不符合上述“次要”的定义，则不允许将其指定为不变。文档可以包含零个固定部分。如果文档未标识任何固定部分，则没有固定部分。</span></p><p><span>The &quot;Cover Texts&quot; are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words.</span>
<span>“封面文本”是指在声明中列出的某些简短的文本段落，作为封面文本或封底文本，表明文档是根据本许可证发布的。封面文本最多为 5 个字，封底文本最多为 25 个字。</span></p><p><span>A &quot;Transparent&quot; copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not &quot;Transparent&quot; is called &quot;Opaque&quot;.</span>
<span>文档的“透明”副本是指机器可读的副本，其格式的规格可供公众使用，适合使用通用文本编辑器或（对于由像素组成的图像）通用绘画程序或（对于绘图）一些广泛可用的绘图编辑器直接修订文档，并且适用于输入到文本格式化程序中或用于自动转换为适合输入到文本格式化程序的各种格式。以其他透明文件格式制作的副本，如果其标记或没有标记被安排以阻止或阻止读者随后的修改，则该副本不是透明的。如果用于任何大量文本，则图像格式不是透明的。不是“透明”的副本称为“不透明”。</span></p><p><span>Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only.</span>
<span>适用于透明副本的格式示例包括不带标记的纯 ASCII、Texinfo 输入格式、LaTeX 输入格式、使用公开可用 DTD 的 SGML 或 XML，以及专为人工修改而设计的符合标准的简单 HTML、PostScript 或 PDF。透明图像格式的示例包括 PNG、XCF 和 JPG。不透明格式包括只能由专有文字处理器读取和编辑的专有格式、DTD 和/或处理工具通常不可用的 SGML 或 XML，以及由某些文字处理器生成的机器生成的 HTML、PostScript 或 PDF，仅用于输出目的。</span></p><p><span>The &quot;Title Page&quot; means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, &quot;Title Page&quot; means the text near the most prominent appearance of the work’s title, preceding the beginning of the body of the text.</span>
<span>“扉页”是指，对于印刷书籍，“扉页”是指扉页本身，以及为清晰地容纳本许可要求在扉页上出现的材料而需要的后续页面。对于没有任何标题页的作品，“标题页”是指作品标题最突出的外观附近、正文开头之前的文本。</span></p><p><span>The &quot;publisher&quot; means any person or entity that distributes copies of the Document to the public.</span>
<span>“发布者”是指向公众分发文档副本的任何个人或实体。</span></p><p><span>A section &quot;Entitled XYZ&quot; means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as &quot;Acknowledgements&quot;, &quot;Dedications&quot;, &quot;Endorsements&quot;, or &quot;History&quot;.) To &quot;Preserve the Title&quot; of such a section when you modify the Document means that it remains a section &quot;Entitled XYZ&quot; according to this definition.</span>
<span>“标题为 XYZ”部分是指文档的命名子单元，其标题可以精确地称为 XYZ，或者在翻译成另一种语言的文本后面的括号中包含 XYZ。（此处 XYZ 代表下面提到的特定部分名称，例如“致谢”、“奉献”、“认可”或“历史”。在修改文档时，“保留标题”意味着根据此定义，它仍然是“标题为 XYZ”的部分。</span></p><p><span>The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License.</span>
<span>本文档可能在通知旁边包含免责声明，声明本许可适用于本文档。这些保证免责声明被视为通过引用包含在本许可中，但仅限于否认保证：这些保证免责声明可能具有的任何其他含义均无效，并且对本许可的含义没有影响。</span></p><ol start='2' ><li><p><span>VERBATIM COPYING 2. 逐字复制</span></p></li></ol><p><span>You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3.</span>
<span>您可以通过任何媒介（商业或非商业方式）复制和分发本文档，前提是本许可证、版权声明和说明本许可证适用于本文档的许可声明的所有副本均已复制，并且您不得在本许可证的副本中添加任何其他条件。您不得使用技术措施阻碍或控制阅读或进一步复制您制作或分发的副本。但是，您可以接受补偿以换取副本。如果您分发的副本数量足够多，您还必须遵循第 3 节中的条件。</span></p><p><span>You may also lend copies, under the same conditions stated above, and you may publicly display copies.</span>
<span>您也可以在上述相同条件下借出副本，并且可以公开展示副本。</span></p><ol start='3' ><li><p><span>COPYING IN QUANTITY 3. 数量复制</span></p></li></ol><p><span>If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document’s license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.</span>
<span>如果您发布的文档的印刷副本（或通常具有印刷封面的媒体副本）数量超过 100 个，并且文档的许可声明要求提供封面文本，则必须将副本附在清晰易读的封面中，以清晰易读地包含所有这些封面文本：封面上的封面文本和封底上的封底文本。两个封面还必须清晰易读地表明您是这些副本的出版商。封面必须显示完整的标题，标题的所有文字都同样突出和可见。此外，您还可以在封面上添加其他材料。只要保留文档的标题并满足这些条件，只要对封面进行更改的复制，在其他方面可以被视为逐字复制。</span></p><p><span>If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.</span>
<span>如果任一封面所需的文本篇幅太大而无法清晰地容纳，则应将列出的第一个文本（尽可能多地适合）放在实际封面上，然后将其余部分继续放在相邻的页面上。</span></p><p><span>If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.</span>
<span>如果您发布或分发编号超过 100 份的文档的不透明副本，则必须在每个不透明副本中包含一个机器可读的透明副本，或者在每个不透明副本中或每个不透明副本中说明一个计算机网络位置，一般网络使用者可以使用公共标准网络协议从中访问下载文档的完整透明副本， 不含添加材料。如果您使用后一种选项，则在开始大量分发不透明副本时，您必须采取合理谨慎的步骤，以确保此透明副本在您最后一次向公众分发该版本的不透明副本（直接或通过您的代理商或零售商）至少一年后才能在指定位置保持可访问性。</span></p><p><span>It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.</span>
<span>我们要求您（但不是必须）在重新分发任何大量副本之前尽早联系文档的作者，以便他们有机会向您提供文档的更新版本。</span></p><ol start='4' ><li><p><span>MODIFICATIONS 4. 修改</span></p></li></ol><p><span>You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:</span>
<span>您可以根据上述第 2 节和第 3 节的条件复制和分发文档的修改版本，前提是您仅根据本许可证发布修改版本，修改后的版本担任文档的角色，从而许可分发和修改修改版本给拥有其副本的人。此外，您必须在修改版本中执行以下操作：</span></p><ol><li><p><span>Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission.</span>
<span>在扉页（以及封面，如果有的话）中使用与文档的标题不同的标题，以及与以前版本的标题不同的标题（如果有的话，应在文档的“历史记录”部分列出）。如果该版本的原始发布者允许，则可以使用与先前版本相同的标题。</span></p></li><li><p><span>List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement.</span>
<span>在扉页上，作为作者，列出负责修改版本中修改的作者身份的一个或多个个人或实体，以及至少五名文档的主要作者（如果少于五人，则为所有主要作者），除非他们免除您的此要求。</span></p></li><li><p><span>State on the Title page the name of the publisher of the Modified Version, as the publisher.</span>
<span>在扉页上注明修改版本的出版商名称，作为出版商。</span></p></li><li><p><span>Preserve all the copyright notices of the Document.</span>
<span>保留文档的所有版权声明。</span></p></li><li><p><span>Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.</span>
<span>在其他版权声明旁边为您的修改添加适当的版权声明。</span></p></li><li><p><span>Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below.</span>
<span>在版权声明之后，立即包含一份许可声明，允许公众根据本许可证的条款使用修改后的版本，格式如下附录所示。</span></p></li><li><p><span>Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document’s license notice.</span>
<span>在该许可声明中保留文档的许可声明中给出的不变部分的完整列表和必需的封面文本。</span></p></li><li><p><span>Include an unaltered copy of this License.</span>
<span>包括本许可证的未更改副本。</span></p></li><li><p><span>Preserve the section Entitled &quot;History&quot;, Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled &quot;History&quot; in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.</span>
<span>保留标题为“历史”的部分，保留其标题，并在其中添加一个项目，至少说明标题页上给出的修改版本的标题、年份、新作者和出版商。如果文档中没有标题为“历史记录”的部分，请创建一个标题，年份，作者和出版商，如其标题页上所示，然后添加一个描述修改版本的项目，如上一句所述。</span></p></li><li><p><span>Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the &quot;History&quot; section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.</span>
<span>保留文档中给出的网络位置（如果有），以便公众访问文档的透明副本，同样，保留文档中给出的以前版本的网络位置。这些可以放在“历史记录”部分。对于至少在文档本身之前四年发布的作品，或者如果它所引用的版本的原始出版商给予许可，您可以省略网络位置。</span></p></li><li><p><span>For any section Entitled &quot;Acknowledgements&quot; or &quot;Dedications&quot;, Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.</span>
<span>对于标题为“致谢”或“献词”的任何部分，请保留该部分的标题，并在该部分中保留其中给出的每个贡献者致谢和/或献词的所有内容和语气。</span></p></li><li><p><span>Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles.</span>
<span>保留文档的所有不变部分，其文本和标题保持不变。章节编号或等效内容不被视为章节标题的一部分。</span></p></li><li><p><span>Delete any section Entitled &quot;Endorsements&quot;. Such a section may not be included in the Modified Version.</span>
<span>删除标题为“背书”的任何一节。此类部分可能不包括在修改版本中。</span></p></li><li><p><span>Do not retitle any existing section to be Entitled &quot;Endorsements&quot; or to conflict in title with any Invariant Section.</span>
<span>请勿将任何现有章节的标题重新命名为“认可”或与任何不变章节在标题上发生冲突。</span></p></li><li><p><span>Preserve any Warranty Disclaimers.</span>
<span>保留任何保修免责声明。</span></p></li></ol><p><span>If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version’s license notice. These titles must be distinct from any other section titles.</span>
<span>如果修改版本包含新的标题部分或附录，这些部分或附录符合次要部分的条件，并且不包含从文档中复制的材料，您可以自行选择将这些部分或全部部分指定为不变部分或全部。为此，请将其标题添加到修改版本的许可声明中的固定部分列表中。这些标题必须与任何其他章节标题不同。</span></p><p><span>You may add a section Entitled &quot;Endorsements&quot;, provided it contains nothing but endorsements of your Modified Version by various parties—for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.</span>
<span>您可以添加标题为“认可”的部分，前提是它仅包含各方对您的修改版本的认可，例如，同行评审的声明或文本已被组织批准为标准的权威定义。</span></p><p><span>You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one.</span>
<span>您可以在修改版的封面文本列表的末尾添加最多 5 个单词的段落作为封面文本，将最多 25 个单词的段落添加为封底文本。任何一个实体只能添加一段封面文本和一段封底文本（或通过其安排）添加一段封面文本。如果文档已经包含同一封面的封面文本，该封面文本是由您之前添加的，或者是由您代表的同一实体做出的安排添加的，则您不得添加另一个;但是，在获得添加旧版本的先前发布者的明确许可后，您可以替换旧的版本。</span></p><p><span>The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.</span>
<span>本文档的作者和出版商不通过本许可证授予使用其姓名进行宣传或断言或暗示认可任何修改版本的许可。</span></p><ol start='5' ><li><p><span>COMBINING DOCUMENTS 5. 合并文件</span></p></li></ol><p><span>You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers.</span>
<span>您可以根据上文第 4 节中定义的修改版本条款将本文档与根据本许可证发布的其他文档合并，前提是您在组合中包含所有原始文档的所有固定部分（未经修改），并在其许可声明中将它们全部列为合并作品的固定部分， 并且您保留他们的所有保修免责声明。</span></p><p><span>The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.</span>
<span>合并的作品只需包含本许可证的一份副本，多个相同的不变部分可以用一份副本替换。如果存在多个名称相同但内容不同的固定部分，则通过在标题末尾添加括号中该部分的原始作者或出版商的姓名（如果已知）或唯一编号，使每个此类部分的标题具有唯一性。对合并作品的许可通知中“固定部分”列表中的章节标题进行相同的调整。</span></p><p><span>In the combination, you must combine any sections Entitled &quot;History&quot; in the various original documents, forming one section Entitled &quot;History&quot;; likewise combine any sections Entitled &quot;Acknowledgements&quot;, and any sections Entitled &quot;Dedications&quot;. You must delete all sections Entitled &quot;Endorsements&quot;.</span>
<span>在组合中，您必须将各种原始文件中标题为“历史”的部分合并，形成一个标题为“历史”的部分;同样，将标题为“致谢”的任何部分和标题为“奉献”的任何部分合并在一起。您必须删除标题为“背书”的所有部分。</span></p><ol start='6' ><li><p><span>COLLECTIONS OF DOCUMENTS</span></p></li><li><p><span>文件收集</span></p></li></ol><p><span>You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.</span>
<span>您可以制作一个由文档和根据本许可证发布的其他文档组成的集合，并用集合中包含的单个副本替换各种文档中本许可证的单个副本，前提是您遵循本许可证的规则，在所有其他方面逐字复制每个文档。</span></p><p><span>You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.</span>
<span>您可以从此类集合中提取单个文档，并根据本许可证单独分发，前提是您将本许可证的副本插入到提取的文档中，并在有关逐字复制该文档的所有其他方面遵循本许可证。</span></p><ol start='7' ><li><p><span>AGGREGATION WITH INDEPENDENT WORKS</span></p></li><li><p><span>与独立作品的聚合</span></p></li></ol><p><span>A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an &quot;aggregate&quot; if the copyright resulting from the compilation is not used to limit the legal rights of the compilation’s users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document.</span>
<span>在存储或分发介质的体积内或在其体积上将文档或其衍生物与其他独立和独立的文档或作品汇编在一起，如果汇编产生的版权未用于限制汇编用户的合法权利，则称为“汇编”，超出了单个作品允许的范围。当文档包含在集合体中时，本许可不适用于聚合体中的其他作品，这些作品本身不是文档的衍生作品。</span></p><p><span>If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document’s Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate.</span>
<span>如果第 3 节的封面文本要求适用于文档的这些副本，则如果文档少于整个总数的一半，则文档的封面文本可以放置在将文档括在汇总中的封面上，或者如果文档是电子形式的，则可以放置在封面的电子等效物上。否则，它们必须出现在包围整个聚合体的印刷封面上。</span></p><ol start='8' ><li><p><span>TRANSLATION 8. 翻译</span></p></li></ol><p><span>Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail.</span>
<span>翻译被视为一种修改，因此您可以根据第 4 节的条款分发文档的翻译。用翻译替换固定部分需要获得其版权所有者的特别许可，但除了这些固定部分的原始版本外，您还可以包括部分或全部固定部分的翻译。您可以包含本许可证的翻译件、文档中的所有许可声明以及任何保证免责声明，前提是您还必须包含本许可的原始英文版本以及这些声明和免责声明的原始版本。如果翻译版本与本许可证的原始版本或通知或免责声明之间存在分歧，则以原始版本为准。</span></p><p><span>If a section in the Document is Entitled &quot;Acknowledgements&quot;, &quot;Dedications&quot;, or &quot;History&quot;, the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title.</span>
<span>如果文档中的某个部分标题为“致谢”、“奉献”或“历史”，则保留其标题的要求（第 4 节）通常需要更改实际标题。</span></p><ol start='9' ><li><p><span>TERMINATION 9. 终止</span></p></li></ol><p><span>You may not copy, modify, sublicense, or distribute the Document except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, or distribute it is void, and will automatically terminate your rights under this License.</span>
<span>除非本许可明确规定，否则您不得复制、修改、再许可或分发文档。任何以其他方式复制、修改、再许可或分发本许可的尝试都是无效的，并将自动终止您在本许可项下的权利。</span></p><p><span>However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.</span>
<span>但是，如果您停止对本许可的所有违反行为，则您从特定版权所有者处获得的许可将 （a） 暂时恢复，除非且直到版权所有者明确并最终终止您的许可，以及 （b） 如果版权所有者未能在停止后 60 天内通过某种合理方式通知您违规行为，则永久恢复。</span></p><p><span>Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.</span>
<span>此外，如果版权所有者通过某种合理方式通知您违规行为，则您来自特定版权所有者的许可将永久恢复，这是您第一次收到该版权所有者违反本许可（针对任何作品）的通知，并且您在收到通知后 30 天内纠正违规行为。</span></p><p><span>Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, receipt of a copy of some or all of the same material does not give you any rights to use it.</span>
<span>终止您在本节项下的权利并不会终止已从您处收到本许可项下的副本或权利的各方的许可。如果您的权利已被终止且未永久恢复，则收到部分或全部相同材料的副本并不意味着您有权使用它。</span></p><ol start='10' ><li><p><span>FUTURE REVISIONS OF THIS LICENSE</span></p></li><li><p><span>本许可证的未来修订</span></p></li></ol><p><span>The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See </span><a href='http://www.gnu.org/copyleft/' target='_blank' class='url'>http://www.gnu.org/copyleft/</a><span>.</span>
<span>自由软件基金会可能会不时发布 GNU 自由文档许可证的新的、修订版本。这些新版本在精神上将与当前版本相似，但在细节上可能会有所不同，以解决新的问题或关切。请参见 </span><a href='http://www.gnu.org/copyleft/' target='_blank' class='url'>http://www.gnu.org/copyleft/</a><span>。</span></p><p><span>Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License &quot;or any later version&quot; applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. If the Document specifies that a proxy can decide which future versions of this License can be used, that proxy’s public statement of acceptance of a version permanently authorizes you to choose that version for the Document.</span>
<span>许可证的每个版本都有一个可区分的版本号。如果文档指定本许可证的特定编号版本“或任何更高版本”适用于它，您可以选择遵循该指定版本或自由软件基金会已发布（而非草稿）的任何后续版本的条款和条件。如果文档没有指定本许可证的版本号，您可以选择自由软件基金会曾经发布过的任何版本（而不是草稿）。如果文档指定代理可以决定可以使用本许可证的哪些未来版本，则该代理接受某个版本的公开声明永久授权您为文档选择该版本。</span></p><ol start='11' ><li><p><span>RELICENSING 11. 重新许可</span></p></li></ol><p><span>&quot;Massive Multiauthor Collaboration Site&quot; (or &quot;MMC Site&quot;) means any World Wide Web server that publishes copyrightable works and also provides prominent facilities for anybody to edit those works. A public wiki that anybody can edit is an example of such a server. A &quot;Massive Multiauthor Collaboration&quot; (or &quot;MMC&quot;) contained in the site means any set of copyrightable works thus published on the MMC site.</span>
<span>“大型多作者协作站点”（或“MMC 站点”）是指发布受版权保护的作品并为任何人提供编辑这些作品的重要设施的任何万维网服务器。任何人都可以编辑的公共wiki就是这样一种服务器的一个例子。本网站中包含的“大规模多作者协作”（或“MMC”）是指在MMC网站上发布的任何一组受版权保护的作品。</span></p><p><span>&quot;CC-BY-SA&quot; means the Creative Commons Attribution-Share Alike 3.0 license published by Creative Commons Corporation, a not-for-profit corporation with a principal place of business in San Francisco, California, as well as future copyleft versions of that license published by that same organization.</span>
<span>“CC-BY-SA”是指由Creative Commons Corporation（一家主要营业地点位于加利福尼亚州旧金山的非营利性公司）发布的Creative Commons Attribution-Share Alike 3.0许可，以及由该组织发布的该许可的未来copyleft版本。</span></p><p><span>&quot;Incorporate&quot; means to publish or republish a Document, in whole or in part, as part of another Document.</span>
<span>“合并”是指将文档的全部或部分内容作为另一个文档的一部分发布或重新发布。</span></p><p><span>An MMC is &quot;eligible for relicensing&quot; if it is licensed under this License, and if all works that were first published under this License somewhere other than this MMC, and subsequently incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thus incorporated prior to November 1, 2008.</span>
<span>如果MMC根据本许可证获得许可，并且如果所有作品首次根据本许可证在本MMC以外的地方发布，并随后全部或部分纳入MMC，则该作品“有资格获得许可”，（1）没有封面文本或固定部分，并且（2）因此是在11月1日之前合并的， 2008.</span></p><p><span>The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing.</span>
<span>在2009年8月1日之前，MMC网站的运营商可以在同一网站上根据CC-BY-SA重新发布该网站中包含的MMC，前提是MMC有资格获得许可。</span></p><hr /><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_1'><span>1</span></a><span>. smartmontools homepage </span><a href='https://www.smartmontools.org/'><span>https://www.smartmontools.org</span></a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_1'><span>1</span></a><span>. SmartmonTools主页 </span><a href='https://www.smartmontools.org/'><span>https://www.smartmontools.org</span></a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_2'><span>2</span></a><span>. OpenZFS dRAID </span><a href='https://openzfs.github.io/openzfs-docs/Basic Concepts/dRAID Howto.html'><span>https://openzfs.github.io/openzfs-docs/Basic%20Concepts/dRAID%20Howto.html</span></a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_3'><span>3</span></a><span>. Systems installed with Proxmox VE 6.4 or later, EFI systems installed with Proxmox VE 5.4 or later</span>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_3'><span>3</span></a><span>. 安装了 Proxmox VE 6.4 或更高版本的系统，安装了 Proxmox VE 5.4 或更高版本的 EFI 系统</span></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_4'><span>4</span></a><span>. </span><a href='https://bugzilla.proxmox.com/show_bug.cgi?id=2350' target='_blank' class='url'>https://bugzilla.proxmox.com/show_bug.cgi?id=2350</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_5'><span>5</span></a><span>. </span><a href='https://github.com/openzfs/zfs/issues/11688' target='_blank' class='url'>https://github.com/openzfs/zfs/issues/11688</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_6'><span>6</span></a><span>. acme.sh </span><a href='https://github.com/acmesh-official/acme.sh' target='_blank' class='url'>https://github.com/acmesh-official/acme.sh</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_7'><span>7</span></a><span>. These are all installs with root on ext4 or xfs and installs with root on ZFS on non-EFI systems</span>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_7'><span>7</span></a><span>. 这些都是在 ext4 或 xfs 上使用 root 安装，在非 EFI 系统上以 root 身份安装在 ZFS 上</span></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_8'><span>8</span></a><span>. Booting ZFS on root with GRUB </span><a href='https://github.com/zfsonlinux/zfs/wiki/Debian-Stretch-Root-on-ZFS' target='_blank' class='url'>https://github.com/zfsonlinux/zfs/wiki/Debian-Stretch-Root-on-ZFS</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_8'><span>8</span></a><span>. 使用 GRUB 在 root 上启动 </span><a href='https://github.com/zfsonlinux/zfs/wiki/Debian-Stretch-Root-on-ZFS'><span>ZFS https://github.com/zfsonlinux/zfs/wiki/Debian-Stretch-Root-on-ZFS</span></a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_9'><span>9</span></a><span>. GRUB Manual </span><a href='https://www.gnu.org/software/grub/manual/grub/grub.html' target='_blank' class='url'>https://www.gnu.org/software/grub/manual/grub/grub.html</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_9'><span>9</span></a><span>. GRUB 手动 </span><a href='https://www.gnu.org/software/grub/manual/grub/grub.html' target='_blank' class='url'>https://www.gnu.org/software/grub/manual/grub/grub.html</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_10'><span>10</span></a><span>. Systems using proxmox-boot-tool will call proxmox-boot-tool refresh upon update-grub.</span>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_10'><span>10</span></a><span>. 使用 proxmox-boot-tool 的系统将在 update-grub 时调用 proxmox-boot-tool 刷新。</span></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_11'><span>11</span></a><span>. votequorum_qdevice_master_wins manual page </span><a href='https://manpages.debian.org/bookworm/libvotequorum-dev/votequorum_qdevice_master_wins.3.en.html' target='_blank' class='url'>https://manpages.debian.org/bookworm/libvotequorum-dev/votequorum_qdevice_master_wins.3.en.html</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_11'><span>11</span></a><span>. votequorum_qdevice_master_wins手册页 </span><a href='https://manpages.debian.org/bookworm/libvotequorum-dev/votequorum_qdevice_master_wins.3.en.html' target='_blank' class='url'>https://manpages.debian.org/bookworm/libvotequorum-dev/votequorum_qdevice_master_wins.3.en.html</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_12'><span>12</span></a><span>. </span><a href='https://docs.ceph.com/en/quincy/rados/operations/user-management/'><span>Ceph User Management</span></a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_12'><span>12</span></a><span>. </span><a href='https://docs.ceph.com/en/quincy/rados/operations/user-management/'><span>Ceph 用户管理</span></a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_13'><span>13</span></a><span>. RBD configuration reference </span><a href='https://docs.ceph.com/en/quincy/rbd/rbd-config-ref/' target='_blank' class='url'>https://docs.ceph.com/en/quincy/rbd/rbd-config-ref/</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_13'><span>13</span></a><span>. RBD 配置参考 </span><a href='https://docs.ceph.com/en/quincy/rbd/rbd-config-ref/' target='_blank' class='url'>https://docs.ceph.com/en/quincy/rbd/rbd-config-ref/</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_14'><span>14</span></a><span>. Ceph intro </span><a href='https://docs.ceph.com/en/quincy/start/intro/' target='_blank' class='url'>https://docs.ceph.com/en/quincy/start/intro/</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_14'><span>14</span></a><span>. Ceph 介绍 </span><a href='https://docs.ceph.com/en/quincy/start/intro/' target='_blank' class='url'>https://docs.ceph.com/en/quincy/start/intro/</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_15'><span>15</span></a><span>. Ceph architecture </span><a href='https://docs.ceph.com/en/quincy/architecture/' target='_blank' class='url'>https://docs.ceph.com/en/quincy/architecture/</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_15'><span>15</span></a><span>. Ceph 架构 </span><a href='https://docs.ceph.com/en/quincy/architecture/' target='_blank' class='url'>https://docs.ceph.com/en/quincy/architecture/</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_16'><span>16</span></a><span>. Ceph glossary </span><a href='https://docs.ceph.com/en/quincy/glossary' target='_blank' class='url'>https://docs.ceph.com/en/quincy/glossary</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_16'><span>16</span></a><span>. Ceph 词汇表 </span><a href='https://docs.ceph.com/en/quincy/glossary' target='_blank' class='url'>https://docs.ceph.com/en/quincy/glossary</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_17'><span>17</span></a><span>. Full Mesh Network for Ceph </span><a href='https://pve.proxmox.com/wiki/Full_Mesh_Network_for_Ceph_Server' target='_blank' class='url'>https://pve.proxmox.com/wiki/Full_Mesh_Network_for_Ceph_Server</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_17'><span>17</span></a><span>. Ceph </span><a href='https://pve.proxmox.com/wiki/Full_Mesh_Network_for_Ceph_Server' target='_blank' class='url'>https://pve.proxmox.com/wiki/Full_Mesh_Network_for_Ceph_Server</a><span> 的全网状网络</span></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_18'><span>18</span></a><span>. Ceph Monitor </span><a href='https://docs.ceph.com/en/quincy/start/intro/' target='_blank' class='url'>https://docs.ceph.com/en/quincy/start/intro/</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_19'><span>19</span></a><span>. Ceph Manager </span><a href='https://docs.ceph.com/en/quincy/mgr/' target='_blank' class='url'>https://docs.ceph.com/en/quincy/mgr/</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_19'><span>19</span></a><span>. Ceph 管理器 </span><a href='https://docs.ceph.com/en/quincy/mgr/' target='_blank' class='url'>https://docs.ceph.com/en/quincy/mgr/</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_20'><span>20</span></a><span>. Ceph Bluestore </span><a href='https://ceph.com/community/new-luminous-bluestore/' target='_blank' class='url'>https://ceph.com/community/new-luminous-bluestore/</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_21'><span>21</span></a><span>. PG calculator </span><a href='https://web.archive.org/web/20210301111112/http://ceph.com/pgcalc/' target='_blank' class='url'>https://web.archive.org/web/20210301111112/http://ceph.com/pgcalc/</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_21'><span>21</span></a><span>. PG计算器 </span><a href='https://web.archive.org/web/20210301111112/http://ceph.com/pgcalc/' target='_blank' class='url'>https://web.archive.org/web/20210301111112/http://ceph.com/pgcalc/</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_22'><span>22</span></a><span>. Placement Groups </span><a href='https://docs.ceph.com/en/quincy/rados/operations/placement-groups/' target='_blank' class='url'>https://docs.ceph.com/en/quincy/rados/operations/placement-groups/</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_22'><span>22</span></a><span>. 安置组 </span><a href='https://docs.ceph.com/en/quincy/rados/operations/placement-groups/' target='_blank' class='url'>https://docs.ceph.com/en/quincy/rados/operations/placement-groups/</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_23'><span>23</span></a><span>. Automated Scaling </span><a href='https://docs.ceph.com/en/quincy/rados/operations/placement-groups/#automated-scaling' target='_blank' class='url'>https://docs.ceph.com/en/quincy/rados/operations/placement-groups/#automated-scaling</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_23'><span>23</span></a><span>. 自动扩容 </span><a href='https://docs.ceph.com/en/quincy/rados/operations/placement-groups/#automated-scaling' target='_blank' class='url'>https://docs.ceph.com/en/quincy/rados/operations/placement-groups/#automated-scaling</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_24'><span>24</span></a><span>. Ceph pool operation </span><a href='https://docs.ceph.com/en/quincy/rados/operations/pools/' target='_blank' class='url'>https://docs.ceph.com/en/quincy/rados/operations/pools/</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_24'><span>24</span></a><span>. Ceph 池操作 </span><a href='https://docs.ceph.com/en/quincy/rados/operations/pools/' target='_blank' class='url'>https://docs.ceph.com/en/quincy/rados/operations/pools/</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_25'><span>25</span></a><span>. Ceph Erasure Coded Pool Recovery </span><a href='https://docs.ceph.com/en/quincy/rados/operations/erasure-code/#erasure-coded-pool-recovery' target='_blank' class='url'>https://docs.ceph.com/en/quincy/rados/operations/erasure-code/#erasure-coded-pool-recovery</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_25'><span>25</span></a><span>. Ceph 纠删编码池恢复 </span><a href='https://docs.ceph.com/en/quincy/rados/operations/erasure-code/#erasure-coded-pool-recovery' target='_blank' class='url'>https://docs.ceph.com/en/quincy/rados/operations/erasure-code/#erasure-coded-pool-recovery</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_26'><span>26</span></a><span>. Ceph Erasure Code Profile </span><a href='https://docs.ceph.com/en/quincy/rados/operations/erasure-code/#erasure-code-profiles' target='_blank' class='url'>https://docs.ceph.com/en/quincy/rados/operations/erasure-code/#erasure-code-profiles</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_26'><span>26</span></a><span>. Ceph 纠删码配置文件 </span><a href='https://docs.ceph.com/en/quincy/rados/operations/erasure-code/#erasure-code-profiles' target='_blank' class='url'>https://docs.ceph.com/en/quincy/rados/operations/erasure-code/#erasure-code-profiles</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_27'><span>27</span></a><span>. CRUSH </span><a href='https://ceph.com/wp-content/uploads/2016/08/weil-crush-sc06.pdf' target='_blank' class='url'>https://ceph.com/wp-content/uploads/2016/08/weil-crush-sc06.pdf</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_27'><span>27</span></a><span>. 粉碎 </span><a href='https://ceph.com/wp-content/uploads/2016/08/weil-crush-sc06.pdf' target='_blank' class='url'>https://ceph.com/wp-content/uploads/2016/08/weil-crush-sc06.pdf</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_28'><span>28</span></a><span>. CRUSH map </span><a href='https://docs.ceph.com/en/quincy/rados/operations/crush-map/' target='_blank' class='url'>https://docs.ceph.com/en/quincy/rados/operations/crush-map/</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_28'><span>28</span></a><span>. 粉碎地图 </span><a href='https://docs.ceph.com/en/quincy/rados/operations/crush-map/' target='_blank' class='url'>https://docs.ceph.com/en/quincy/rados/operations/crush-map/</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_29'><span>29</span></a><span>. Configuring multiple active MDS daemons </span><a href='https://docs.ceph.com/en/quincy/cephfs/multimds/' target='_blank' class='url'>https://docs.ceph.com/en/quincy/cephfs/multimds/</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_29'><span>29</span></a><span>. 配置多个活动 MDS 守护进程 </span><a href='https://docs.ceph.com/en/quincy/cephfs/multimds/' target='_blank' class='url'>https://docs.ceph.com/en/quincy/cephfs/multimds/</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_30'><span>30</span></a><span>. Ceph scrubbing </span><a href='https://docs.ceph.com/en/quincy/rados/configuration/osd-config-ref/#scrubbing' target='_blank' class='url'>https://docs.ceph.com/en/quincy/rados/configuration/osd-config-ref/#scrubbing</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_30'><span>30</span></a><span>. Ceph 洗涤 </span><a href='https://docs.ceph.com/en/quincy/rados/configuration/osd-config-ref/#scrubbing' target='_blank' class='url'>https://docs.ceph.com/en/quincy/rados/configuration/osd-config-ref/#scrubbing</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_31'><span>31</span></a><span>. Ceph log and debugging </span><a href='https://docs.ceph.com/en/quincy/rados/troubleshooting/log-and-debug/' target='_blank' class='url'>https://docs.ceph.com/en/quincy/rados/troubleshooting/log-and-debug/</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_31'><span>31</span></a><span>. Ceph 日志和调试 </span><a href='https://docs.ceph.com/en/quincy/rados/troubleshooting/log-and-debug/' target='_blank' class='url'>https://docs.ceph.com/en/quincy/rados/troubleshooting/log-and-debug/</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_32'><span>32</span></a><span>. Ceph troubleshooting </span><a href='https://docs.ceph.com/en/quincy/rados/troubleshooting/' target='_blank' class='url'>https://docs.ceph.com/en/quincy/rados/troubleshooting/</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_32'><span>32</span></a><span>. Ceph 故障排除 </span><a href='https://docs.ceph.com/en/quincy/rados/troubleshooting/' target='_blank' class='url'>https://docs.ceph.com/en/quincy/rados/troubleshooting/</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_33'><span>33</span></a><span>. See this benchmark on the KVM wiki </span><a href='https://www.linux-kvm.org/page/Using_VirtIO_NIC' target='_blank' class='url'>https://www.linux-kvm.org/page/Using_VirtIO_NIC</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_33'><span>33</span></a><span>. 在 KVM wiki 上查看此基准测试 </span><a href='https://www.linux-kvm.org/page/Using_VirtIO_NIC' target='_blank' class='url'>https://www.linux-kvm.org/page/Using_VirtIO_NIC</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_34'><span>34</span></a><span>. See this benchmark for details </span><a href='https://events.static.linuxfound.org/sites/events/files/slides/CloudOpen2013_Khoa_Huynh_v3.pdf' target='_blank' class='url'>https://events.static.linuxfound.org/sites/events/files/slides/CloudOpen2013_Khoa_Huynh_v3.pdf</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_34'><span>34</span></a><span>. 有关详细信息，请参阅此基准 </span><a href='https://events.static.linuxfound.org/sites/events/files/slides/CloudOpen2013_Khoa_Huynh_v3.pdf' target='_blank' class='url'>https://events.static.linuxfound.org/sites/events/files/slides/CloudOpen2013_Khoa_Huynh_v3.pdf</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_35'><span>35</span></a><span>. TRIM, UNMAP, and discard </span><a href='https://en.wikipedia.org/wiki/Trim_(computing)'><span>https://en.wikipedia.org/wiki/Trim_%28computing%29</span></a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_35'><span>35</span></a><span>. 修剪、取消映射和丢弃 </span><a href='https://en.wikipedia.org/wiki/Trim_(computing)'><span>https://en.wikipedia.org/wiki/Trim_%28computing%29</span></a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_36'><span>36</span></a><span>. Meltdown Attack </span><a href='https://meltdownattack.com/' target='_blank' class='url'>https://meltdownattack.com/</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_36'><span>36</span></a><span>. Meltdown 攻击 </span><a href='https://meltdownattack.com/' target='_blank' class='url'>https://meltdownattack.com/</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_37'><span>37</span></a><span>. spectre-meltdown-checker </span><a href='https://meltdown.ovh/' target='_blank' class='url'>https://meltdown.ovh/</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_38'><span>38</span></a><span>. PCID is now a critical performance/security feature on x86 </span><a href='https://groups.google.com/forum/m/#!topic/mechanical-sympathy/L9mHTbeQLNU' target='_blank' class='url'>https://groups.google.com/forum/m/#!topic/mechanical-sympathy/L9mHTbeQLNU</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_38'><span>38</span></a><span>. PCID 现在是 x86 </span><a href='https://groups.google.com/forum/m/#!topic/mechanical-sympathy/L9mHTbeQLNU' target='_blank' class='url'>https://groups.google.com/forum/m/#!topic/mechanical-sympathy/L9mHTbeQLNU</a><span> 上的关键性能/安全特性</span></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_39'><span>39</span></a><span>. </span><a href='https://en.wikipedia.org/wiki/Non-uniform_memory_access' target='_blank' class='url'>https://en.wikipedia.org/wiki/Non-uniform_memory_access</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_40'><span>40</span></a><span>. if the command numactl --hardware | grep available returns more than one node, then your host system has a NUMA architecture</span>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_40'><span>40</span></a><span>. 如果命令 numactl --hardware | grep available 返回多个节点，则您的主机系统具有 NUMA 架构</span></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_41'><span>41</span></a><span>. A good explanation of the inner workings of the balloon driver can be found here </span><a href='https://rwmj.wordpress.com/2010/07/17/virtio-balloon/' target='_blank' class='url'>https://rwmj.wordpress.com/2010/07/17/virtio-balloon/</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_41'><span>41</span></a><span>. 关于气球驱动器内部工作的解释可以在这里找到 </span><a href='https://rwmj.wordpress.com/2010/07/17/virtio-balloon/' target='_blank' class='url'>https://rwmj.wordpress.com/2010/07/17/virtio-balloon/</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_42'><span>42</span></a><span>. </span><a href='https://www.kraxel.org/blog/2014/10/qemu-using-cirrus-considered-harmful/' target='_blank' class='url'>https://www.kraxel.org/blog/2014/10/qemu-using-cirrus-considered-harmful/</a><span> qemu: using cirrus considered harmful</span>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_42'><span>42</span></a><span>. </span><a href='https://www.kraxel.org/blog/2014/10/qemu-using-cirrus-considered-harmful/' target='_blank' class='url'>https://www.kraxel.org/blog/2014/10/qemu-using-cirrus-considered-harmful/</a><span> QEMU：使用被认为有害的卷云</span></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_43'><span>43</span></a><span>. See the OVMF Project </span><a href='https://github.com/tianocore/tianocore.github.io/wiki/OVMF' target='_blank' class='url'>https://github.com/tianocore/tianocore.github.io/wiki/OVMF</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_43'><span>43</span></a><span>. 参见 OVMF 项目 </span><a href='https://github.com/tianocore/tianocore.github.io/wiki/OVMF' target='_blank' class='url'>https://github.com/tianocore/tianocore.github.io/wiki/OVMF</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_44'><span>44</span></a><span>. Alex Williamson has a good blog entry about this </span><a href='https://vfio.blogspot.co.at/2014/08/primary-graphics-assignment-without-vga.html' target='_blank' class='url'>https://vfio.blogspot.co.at/2014/08/primary-graphics-assignment-without-vga.html</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_44'><span>44</span></a><span>.亚历克斯·威廉姆森（Alex Williamson）有一篇关于此 </span><a href='https://vfio.blogspot.co.at/2014/08/primary-graphics-assignment-without-vga.html' target='_blank' class='url'>https://vfio.blogspot.co.at/2014/08/primary-graphics-assignment-without-vga.html</a><span> 的好博客文章</span></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_45'><span>45</span></a><span>. Looking Glass: </span><a href='https://looking-glass.io/' target='_blank' class='url'>https://looking-glass.io/</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_45'><span>45</span></a><span>. 镜子：</span><a href='https://looking-glass.io/' target='_blank' class='url'>https://looking-glass.io/</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_46'><span>46</span></a><span>. Official </span><em><span>vmgenid</span></em><span> Specification </span><a href='https://docs.microsoft.com/en-us/windows/desktop/hyperv_v2/virtual-machine-generation-identifier' target='_blank' class='url'>https://docs.microsoft.com/en-us/windows/desktop/hyperv_v2/virtual-machine-generation-identifier</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_46'><span>46</span></a><span>. </span><em><span>官方 vmgenid</span></em><span> 规格 </span><a href='https://docs.microsoft.com/en-us/windows/desktop/hyperv_v2/virtual-machine-generation-identifier' target='_blank' class='url'>https://docs.microsoft.com/en-us/windows/desktop/hyperv_v2/virtual-machine-generation-identifier</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_47'><span>47</span></a><span>. Online GUID generator </span><a href='http://guid.one/' target='_blank' class='url'>http://guid.one/</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_47'><span>47</span></a><span>. 在线 GUID 生成器 </span><a href='http://guid.one/' target='_blank' class='url'>http://guid.one/</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_48'><span>48</span></a><span>. </span><a href='https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/get-started/virtual-dc/virtualized-domain-controller-architecture' target='_blank' class='url'>https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/get-started/virtual-dc/virtualized-domain-controller-architecture</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_49'><span>49</span></a><span>. this includes all newest major versions of container templates shipped by Proxmox VE</span>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_49'><span>49</span></a><span>. 这包括 Proxmox VE 提供的所有最新的容器模板主要版本</span></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_50'><span>50</span></a><span>. for example Alpine Linux</span>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_50'><span>50</span></a><span>. 例如 Alpine Linux</span></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_51'><span>51</span></a><span>. /etc/os-release replaces the multitude of per-distribution release files </span><a href='https://manpages.debian.org/stable/systemd/os-release.5.en.html' target='_blank' class='url'>https://manpages.debian.org/stable/systemd/os-release.5.en.html</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_51'><span>51</span></a><span>. /etc/os-release 替换了每个发行版的大量发布文件 </span><a href='https://manpages.debian.org/stable/systemd/os-release.5.en.html' target='_blank' class='url'>https://manpages.debian.org/stable/systemd/os-release.5.en.html</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_52'><span>52</span></a><span>. AppId </span><a href='https://developers.yubico.com/U2F/App_ID.html' target='_blank' class='url'>https://developers.yubico.com/U2F/App_ID.html</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_53'><span>53</span></a><span>. Multi-facet apps: </span><a href='https://developers.yubico.com/U2F/App_ID.html' target='_blank' class='url'>https://developers.yubico.com/U2F/App_ID.html</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_53'><span>53</span></a><span>. 多方面应用：</span><a href='https://developers.yubico.com/U2F/App_ID.html' target='_blank' class='url'>https://developers.yubico.com/U2F/App_ID.html</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_54'><span>54</span></a><span>. Lempel–Ziv–Oberhumer a lossless data compression algorithm </span><a href='https://en.wikipedia.org/wiki/Lempel-Ziv-Oberhumer' target='_blank' class='url'>https://en.wikipedia.org/wiki/Lempel-Ziv-Oberhumer</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_54'><span>54</span></a><span>. Lempel-Ziv-Oberhumer，一种无损数据压缩算法 </span><a href='https://en.wikipedia.org/wiki/Lempel-Ziv-Oberhumer' target='_blank' class='url'>https://en.wikipedia.org/wiki/Lempel-Ziv-Oberhumer</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_55'><span>55</span></a><span>. gzip - based on the DEFLATE algorithm </span><a href='https://en.wikipedia.org/wiki/Gzip' target='_blank' class='url'>https://en.wikipedia.org/wiki/Gzip</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_55'><span>55</span></a><span>. gzip - 基于 DEFLATE 算法 </span><a href='https://en.wikipedia.org/wiki/Gzip' target='_blank' class='url'>https://en.wikipedia.org/wiki/Gzip</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_56'><span>56</span></a><span>. Zstandard a lossless data compression algorithm </span><a href='https://en.wikipedia.org/wiki/Zstandard' target='_blank' class='url'>https://en.wikipedia.org/wiki/Zstandard</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_56'><span>56</span></a><span>. Zstandard，一种无损数据压缩算法 </span><a href='https://en.wikipedia.org/wiki/Zstandard' target='_blank' class='url'>https://en.wikipedia.org/wiki/Zstandard</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_57'><span>57</span></a><span>. pigz - parallel implementation of gzip </span><a href='https://zlib.net/pigz/' target='_blank' class='url'>https://zlib.net/pigz/</a>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_57'><span>57</span></a><span>. Pigz - 并行实现 gzip </span><a href='https://zlib.net/pigz/' target='_blank' class='url'>https://zlib.net/pigz/</a></p><p><a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_58'><span>58</span></a><span>. see man 7 systemd.time for more information</span>
<a href='https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_footnoteref_58'><span>58</span></a><span>. 有关更多信息，请参见 man 7 systemd.time</span></p><p><span>Version 8.2.3 版本 8.2.3</span>
<span>Last updated Wed Jul 31 16:58:41 CEST 2024</span>
<span>最后更新 星期三 Jul 31 16：58：41 CEST 2024</span></p></div></div>
</body>
</html>